#pragma once

#include "Matrix.h"

class AffineTransform
{
public:
	AffineTransform(void);
	AffineTransform( Vector3 & translation, Quaternion & rotation, Vector3 & scale );
	~AffineTransform(void);

public:
	void GetMatrix( Matrix & result );

	void SetTranslation( Vector3 & translation ) { m_translation = translation; }
	Vector3 & GetTranslation() { return m_translation; }

	void SetRotation( Quaternion & rotation ) { m_rotation = rotation; }
	Quaternion & GetRotation() { return m_rotation; }

	void SetScale( Vector3 & scale ) { m_scale = scale; }
	Vector3 & GetScale() { return m_scale; }

private:
	Vector3		m_translation;
	Quaternion	m_rotation;
	Vector3		m_scale;
};
